Introdução

Um problema central na análise de dados multivariados é a redução da dimensionalidade: é possível descrever com precisão a informação contida nos dados mensurados em \(p\) variáveis utilizando um conjunto \(r < p\) de novas variáveis, perdendo a menor quantidade de informação possível?

A análise de componentes principais tem este objetivo: dadas \(n\) observações de \(p\) variáveis, se analisa se é possível representar adequadamente esta informação com um número menor de variáveis construídas como combinações lineares das variáveis originais.

O Problema…

Dado um conjunto de variáveis \(\mathbf{x} = [X_1 \hspace{0.1cm} X_2 \hspace{0.1cm} \cdots \hspace{0.1cm} X_p]^t\), podemos encontrar outro conjunto de variáveis \(\mathbf{y} = [Y_1 \hspace{0.1cm} Y_2 \hspace{0.1cm} \cdots \hspace{0.1cm} Y_r]^t\), dadas por

\[Y_i= \displaystyle{\sum_{j=1}^p a_{ij}X_j}, \,\, i = 1, \cdots, r < p\]

de tal forma que a informação contida em \(\mathbf{x}\) esteja sendo bem representada por \(\mathbf{y}\)?

Algumas questões


Vamos encontrar combinações lineares para representar informação.

🤔 O que é informação?

Informação \(\Longrightarrow\) Variância: quanto maior a variabilidade, maior a informação contida nos dados, maior a variância dos dados

Algumas questões


Outra questão importante:

🤔 O que é uma boa representação da informação?

Boa representação da informação \(\Longrightarrow\) tomar as componentes de \(\mathbf{y}\) que assegurem uma variância similar à de \(\mathbf{x}\)

Esquematicamente

Nestas condições, temos que buscar combinações lineares \(\mathbf{y}\) das variáveis \(\mathbf{x}\) de forma que se maximize a variância

Variáveis Originais Combinações Lineares
\(X_1\) \(Y_1\)
\(X_2\) \(Y_2\)
\(\vdots\) \(\vdots\)
\(X_{r}\) \(\Longrightarrow\) \(Y_r\)
\(\vdots\) \(\vdots\)
\(X_p\) \(Y_{p}\)

\(\rm{Var}[\mathbf{y}]\): Máxima

Esquematicamente

Ideia básica da técnica de Análise de Componentes Principais:

Variáveis Originais Componentes Principais
\(X_1\) ACP \(Y_1\)
\(X_2\) \(\Longrightarrow\) \(Y_2\)
\(\vdots\) \(\vdots\)
\(X_{p}\) \(Y_r\)
\(\vdots\)
\(Y_{p}\)

\(r\) primeiras componentes resumam, por exemplo, 80% do comportamento geral das \(p\) variáveis originais

Principais objetivos

  • Redução da dimensionalidade dos dados, projetando-os em uma dimensão \(r < p\);

Principais objetivos

  • Obtenção de combinações interpretáveis: determinar índices e produzir escores com base nos resultados avaliados para as \(p\) variáveis;

Principais objetivos

  • Descrição e entendimento da estrutura de correlação entre as variáveis, através de algumas combinações lineares das mesmas.

Componentes Principais: o que são?

Algebricamente: são combinações lineares das \(p\) variáveis originais, \(X_1, X_2, \cdots, X_p\).

Geometricamente: são as coordenadas dos pontos amostrais em um sistema de eixos obtido pela rotação do sistema de eixos original, na direção de variabilidade máxima.

🔎

Componentes Principais: alguns comentários

  • Não pressupõe normalidade dos dados, embora componentes derivadas de populações normais tenham interpretações úteis.
  • Com frequência, revela relações insuspeitas. Pode permitir interpretações que não seriam obtidas preliminarmente.
  • Em algumas aplicações, os componentes da ACP configuram o objetivo final do estudo. Em outras, servem como passo intermediário para realização de outras análises, como regressão, classificação, agrupamento, etc…

Componentes Principais: como obtê-los?

  • Sejam \(X_1, \hspace{0.1cm} X_2, \hspace{0.1cm} \cdots, \hspace{0.1cm} X_p\) as variáveis originais
  • A ideia é encontrar um novo conjunto de variáveis \(Y_1, \hspace{0.1cm} Y_2, \hspace{0.1cm} \cdots, \hspace{0.1cm} Y_p\), tais que:

\[\textrm{Var}[Y_1] \geqslant \textrm{Var}[Y_2] \geqslant \cdots \geqslant \textrm{Var}[Y_p]\]

  • Vamos tomar cada nova variável \(Y_i\), \(i = 1, \cdots, p\), como uma combinação linear das variáveis originais \(\mathbf{x}\):

\[Y_i = a_{i1}X_1 + a_{i2}X_2 + \cdots + a_{ip}X_p = \mathbf{a}_i^t \mathbf{x}\]

Componentes Principais: como obtê-los?

  • Para fixar problemas de escala, adicionamos uma primeira restrição aos vetores \(\mathbf{a}_i\):

\[\mathbf{a}_i^t \mathbf{a}_i = \displaystyle{ \sum_{j=1}^p a_{ij}^2} = 1\]

  • Para evitar que duas variáveis \(Y_i\) e \(Y_k\), \(i \neq k\), \(i,k = 1, \cdots, p\), compartilhem informação, adicionamos uma segunda restrição aos vetores \(\mathbf{a}_i\):

\[\mathbf{a}_i^t \mathbf{a}_k = \displaystyle{ \sum_{j=1}^p a_{ij}a_{kj}} = 0\]

Componentes Principais: como obtê-los?



💡 Garantia: ortogalidade, componentes não correlacionadas, independência

Componentes Principais: como obtê-los?

Primeira Componente Principal

\[Y_1 = a_{11}X_1 + a_{12}X_2 + \cdots + a_{1p}X_p = \boldsymbol{a}_1^t \mathbf{x}\]

Objetivo: Encontrar \(\boldsymbol{a}_1^t = [a_{11} \hspace{0.3cm} a_{12} \hspace{0.3cm} \cdots \hspace{0.3cm} a_{1p}]^t\) tal que:

\(\rm{Var}[Y_1]\) seja máxima

Sujeita à restrição:

\[\boldsymbol{a}_1^t \boldsymbol{a}_1 = a_{11}^2 + a_{12}^2 + \cdots + a_{1p}^2 = 1\]

Componentes Principais: como obtê-los?

Segunda Componente Principal

\[Y_2 = a_{21}X_1 + a_{22}X_2 + \cdots + a_{2p}X_p = \boldsymbol{a}_2^t \mathbf{x}\]

Objetivo: Encontrar \(\boldsymbol{a}_2^t = [a_{21} \hspace{0.3cm} a_{22} \hspace{0.3cm} \cdots \hspace{0.3cm} a_{2p}]^t\) tal que:

\(\rm{Var}[Y_2]\) seja máxima

Sujeita à restrição:

\[\boldsymbol{a}_2^t \boldsymbol{a}_2 = a_{21}^2 + a_{22}^2 + \cdots + a_{2p}^2 = 1\]

\[\rm{Cov}[Y_1,Y_2] = 0\]

Componentes Principais: como obtê-los?

i-ésima Componente Principal

\[Y_i = a_{i1}X_1 + a_{i2}X_2 + \cdots + a_{ip}X_p = \boldsymbol{a}_i^t \mathbf{x}\]

Objetivo: Encontrar \(\boldsymbol{a}_i^t = [a_{i1} \hspace{0.3cm} a_{i2} \hspace{0.3cm} \cdots \hspace{0.3cm} a_{ip}]^t\) tal que:

\(\rm{Var}[Y_i]\) seja máxima

Sujeita à restrição:

\[\boldsymbol{a}_i^t \boldsymbol{a}_i = a_{i1}^2 + a_{i2}^2 + \cdots + a_{ip}^2 = 1\]

\[\rm{Cov}[Y_,Y_k] = 0, \text{para } k < i\]

A escolha dos vetores \(\boldsymbol{a}_i\)

  • Considere o vetor aleatório p-variado \(\mathbf{x} = [X_1 \hspace{0.3cm} X_2 \hspace{0.3cm} \cdots \hspace{0.3cm} X_p]^t\) com vetor de médias \(\boldsymbol{\mu}\) e matriz de covariâncias \(\boldsymbol{\Sigma}\), positiva definida (todos os seus autovalores são positivos), sendo

\[\boldsymbol{\mu} = [\mu_1 \hspace{0.3cm} \mu_2 \hspace{0.3cm} \cdots \hspace{0.3cm} \mu_p]^t \hspace{0.5cm} \textrm{e} \hspace{0.5cm} \boldsymbol{\Sigma} = \left[ \begin{array}{cccc} \sigma_{11} & \sigma_{12} & \cdots & \sigma_{1p} \\ \sigma_{21} & \sigma_{22} & \cdots & \sigma_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ \sigma_{p1} & \sigma_{p2} & \cdots & \sigma_{pp} \end{array} \right]\]

  • Para determinação dos componentes principais, com base no que foi exposto, usaremos o seguinte teorema:

A escolha dos vetores \(\boldsymbol{a}_i\)

Teorema - Maximização de formas quadráticas: Seja \(\boldsymbol{B}\) uma matriz positiva definida com autovalores \(\lambda_1 \geqslant \lambda_2 \geqslant \cdots \geqslant \lambda_p > 0\) e autovetores associados normalizados \({\boldsymbol{e}_1, \boldsymbol{e}_2, \cdots, \boldsymbol{e}_p}\). Então:

\[\max_{\mathbf{x} \neq \boldsymbol{0}} \dfrac{\mathbf{x}^t \boldsymbol{B} \mathbf{x}}{\mathbf{x}^t \mathbf{x}} = \lambda_1, \text{ obtido quando } \mathbf{x} = \boldsymbol{e}_1;\]

\[\min_{\mathbf{x} \neq \boldsymbol{0}} \dfrac{\mathbf{x}^t \boldsymbol{B} \mathbf{x}}{\mathbf{x}^t \mathbf{x}} = \lambda_p, \text{ obtido quando } \mathbf{x} = \boldsymbol{e}_p.\]

  • Adicionalmente,

\[\max_{\mathbf{x} \perp \boldsymbol{e}_1, \boldsymbol{e}_1, \cdots, \boldsymbol{e}_k} \dfrac{\mathbf{x}^t \boldsymbol{B} \mathbf{x}}{\mathbf{x}^t \mathbf{x}} = \lambda_{k+1}, \text{ obtido quando } \mathbf{x} = \boldsymbol{e}_{k+1}.\]

A escolha dos vetores \(\boldsymbol{a}_i\)

Assim, no contexto de componentes principais, seja \(\mathbf{x} = [X_1 \hspace{0.3cm} X_2 \hspace{0.3cm} \cdots \hspace{0.3cm} X_p]^t\) um vetor aleatório. Seja \(\boldsymbol{\Sigma}\) a matriz de variâncias e covariâncias e \((\lambda_1, \boldsymbol{e}_1)\), \((\lambda_2, \boldsymbol{e}_2)\), …, \((\lambda_p, \boldsymbol{e}_p)\) seus autovalores e autovetores, tal que \(\lambda_1 \geqslant \lambda_2 \geqslant \cdots \geqslant \lambda_p > 0\). Então:

\[\max_{\boldsymbol{a} \neq \boldsymbol{0}} \dfrac{\boldsymbol{a}^t \boldsymbol{\Sigma} \boldsymbol{a}}{\boldsymbol{a}^t \boldsymbol{a}} = \max_{\boldsymbol{a} \neq \boldsymbol{0}}(\boldsymbol{a}^t \boldsymbol{\Sigma} \boldsymbol{a}) = \lambda_1, \text{ obtido quando } \boldsymbol{a} = \boldsymbol{e}_1;\]

\[\min_{\boldsymbol{a} \neq \boldsymbol{0}} \dfrac{\boldsymbol{a}^t \boldsymbol{\Sigma} \boldsymbol{a}}{\boldsymbol{a}^t \boldsymbol{a}} = \min_{\boldsymbol{a} \neq \boldsymbol{0}}(\boldsymbol{a}^t \boldsymbol{\Sigma} \boldsymbol{a}) = \lambda_p, \text{ obtido quando } \boldsymbol{a} = \boldsymbol{e}_p.\]

A escolha dos vetores \(\boldsymbol{a}_i\)

  • Adicionalmente,

\[\max_{\boldsymbol{a} \perp \boldsymbol{e}_1, \boldsymbol{e}_1, \cdots, \boldsymbol{e}_k} \dfrac{\boldsymbol{a}^t \boldsymbol{\Sigma} {\boldsymbol a}}{\boldsymbol{a}^t \boldsymbol{a}} = \max_{\boldsymbol{a} \perp \boldsymbol{e}_1, \boldsymbol{e}_1, \cdots, \boldsymbol{e}_k}(\boldsymbol{a}^t \boldsymbol{\Sigma} \boldsymbol{a})= \lambda_{k+1}, \text{ obtido quando } \boldsymbol{a} = \boldsymbol{e}_{k+1}.\]

A escolha dos vetores \(\boldsymbol{a}_i\)

  • Uma escolha interessante para os vetores de constantes \({\boldsymbol{a}_i}\), \(i = 1, \cdots, p\) são os autovetores normalizados \({\boldsymbol{e}_i}\) da matriz \(\boldsymbol{\Sigma}\).
  • Dessa forma, podemos definir a \(i\)-ésima componente principal da matriz \(\boldsymbol{\Sigma}\), \(i = 1, \cdots, p\) como sendo

\[Y_i = {\boldsymbol{e}_i^t}\mathbf{x} = e_{i1}X_1 + e_{i2}X_2 + \cdots + e_{ip}X_p\]

Componentes Principais: propriedades

  • A esperança e a variância da componente \(Y_i\) são respectivamente dadas por:

\[ \begin{eqnarray*} E[Y_i] &=& E[e_{i1}X_1 + e_{i2}X_2 + \cdots + e_{ip}X_p] \nonumber \\ &=& e_{i1}E[X_1] + e_{i2}E[X_2] + \cdots + e_{ip}E[X_p] \nonumber \\ &=& e_{i1}\mu_1 + e_{i2}\mu_2 + \cdots + e_{ip}\mu_p \nonumber \\ &=& {\boldsymbol{e}_i^t}{\boldsymbol{\mu}} \nonumber \end{eqnarray*} \]

\[ \textrm{Var}[Y_i] = \textrm{Var}[{\boldsymbol{e}_i^t}\mathbf{x}] = {\boldsymbol{e}_i^t} \textrm{Var}[\mathbf{x}] {\boldsymbol{e}_i} = {\boldsymbol{e}_i^t} \boldsymbol{\Sigma} {\boldsymbol{e}_i} = {\boldsymbol{e}_i^t} \lambda_i {\boldsymbol{e}_i} = {\boldsymbol{e}_i^t} {\boldsymbol{e}_i}\lambda_i = \lambda_i \]

Na forma matricial

  • Sejam \(\boldsymbol{O}\) a matriz dos autovetores normalizados da matriz \(\boldsymbol{\Sigma}\), isto é,

\[\boldsymbol{O} = \left[ \begin{array}{cccc} e_{11} & e_{21} & \cdots & e_{p1} \\ e_{12} & e_{22} & \cdots & e_{p2} \\ \vdots & \vdots & \ddots & \vdots \\ e_{1p} & e_{2p} & \cdots & e_{pp} \end{array} \right] = [{\boldsymbol{e}_1} \hspace{0.5cm} {\boldsymbol{e}_2} \hspace{0.5cm} \cdots \hspace{0.5cm} {\boldsymbol{e}_p}]\]

e \(\boldsymbol{y}\) o vetor das componentes principais. Então, \(\boldsymbol{y} = \boldsymbol{O}^t \mathbf{x}\) e a matriz de covariâncias de \(\boldsymbol{y}\) será:

\[\textrm{Var}[\boldsymbol{y}] = \textrm{Var}[\boldsymbol{O}^t \mathbf{x}] = \boldsymbol{O}^t \textrm{Var}[\mathbf{x}] \boldsymbol{O} = \boldsymbol{O}^t \boldsymbol{\Sigma} \boldsymbol{O} = \boldsymbol{\Lambda}\]

Na forma matricial

sendo

\[\boldsymbol{\Lambda} = \left[ \begin{array}{cccc} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_p \end{array} \right] \]

ou ainda, \(\boldsymbol{\Sigma} = \boldsymbol{O} \boldsymbol{\Lambda} \boldsymbol{O}^t = \displaystyle \sum_{i=1}^p \lambda_i \boldsymbol{e}_i \boldsymbol{e}_i^t\), uma vez que \(\boldsymbol{O}\) é uma matriz ortogonal tal que \(\boldsymbol{O} \boldsymbol{O}^t = \boldsymbol{O}^t \boldsymbol{O} = \boldsymbol{I}\). Estes resultados são conhecidos como Teorema da decomposição espectral.

Variabilidade explicada

Variável Variância Componente Variância
\(X_1\) \(\sigma_{11}\) \(Y_1\) \(\lambda_1\)
\(X_2\) \(\sigma_{22}\) \(Y_2\) \(\lambda_2\)
\(\vdots\) \(\vdots\) \(\vdots\) \(\vdots\)
\(X_p\) \(\sigma_{pp}\) \(Y_p\) \(\lambda_p\)
Total \(\sigma_T^2\) = \(\displaystyle{\sum_{j=1}^p \sigma_{jj}} = \rm{tr}(\boldsymbol{\Sigma})\) Total \(\lambda_T = \displaystyle{\sum_{j=1}^p \lambda_j} = \rm{tr}(\boldsymbol{\Lambda})\)

\[\rm{tr}(\boldsymbol{\Sigma}) = \rm{tr}(\boldsymbol{O} \boldsymbol{\Lambda} \boldsymbol{O}^t) = \rm{tr}(\boldsymbol{\Lambda} \boldsymbol{O}^t \boldsymbol{O}) = \rm{tr}(\boldsymbol{\Lambda} \boldsymbol{I}) = \rm{tr}(\boldsymbol{\Lambda})\]

\[\sigma_T^2 = \lambda_T\]

Variabilidade explicada

  • Pode-se então concluir que a j-ésima componente explica

\[\displaystyle{\frac{\textrm{Var}[Y_j]}{\textrm{Variância Total de X}}} = \displaystyle{\frac{\lambda_j}{\textrm{tr}(\boldsymbol{\Sigma})}} = \displaystyle{\frac{\lambda_j}{\displaystyle{\sum_{i=1}^p \lambda_i}}}\]

da variação total original, e ainda, que as \(r\) primeiras componentes explicam

\[\displaystyle{\frac{ \displaystyle \sum_{j=1}^r \textrm{Var}[Y_j]}{\textrm{Variância Total de X}}} = \displaystyle{\frac{\displaystyle \sum_{j=1}^r \lambda_j}{\textrm{tr}(\boldsymbol{\Sigma})}} = \displaystyle{\frac{\displaystyle \sum_{j=1}^r \lambda_j}{\displaystyle{\sum_{i=1}^p \lambda_i}}}\]

da variação total.

Variabilidade explicada

  • Busca-se analisar um conjunto menor de variáveis sem perder muita informação sobre a estrutura de variabilidade original
  • Aproximação de \(\boldsymbol{\Sigma}\): Analisando as \(r\) primeiras componentes principais

\[\boldsymbol{\Sigma} \approx \displaystyle \sum_{i=1}^r \lambda_i \boldsymbol{e}_i \boldsymbol{e}_i^t\]

  • Cada parcela da soma envolve uma matriz de dimensão \(p \times p\) correspondente apenas à informação da \(j\)-ésima componente principal

Correlação com as variáveis originais

  • Os coeficientes de correlação entre a \(j\)-ésima variável e a \(i\)-ésima componente principal é dada por:

\[\rho_{Y_i,X_j} = \displaystyle{\frac{e_{ij} \sqrt{\lambda_i}}{\sqrt{\sigma_{jj}}}}\]

  • As correlações medem unicamente a importância de uma variável individual sem considerar a influência das demais. Não medem a importância de \(X_i\) na presença de outras variáveis.
  • Os coeficientes (cargas) dos componentes (\(e_{ij}\)), seus sinais e magnitudes, permitem interpretar os componentes e avaliar a importância das variáveis em sua constituição.

Estimação das Componentes Principais

  • Em geral, \(\boldsymbol{\Sigma}\) é estimada por \(\boldsymbol{S}\)

\[\boldsymbol{S} = \left[ \begin{array}{cccc} s_{11} & s_{12} & \cdots & s_{1p} \\ s_{21} & s_{22} & \cdots & s_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ s_{p1} & s_{p2} & \cdots & s_{pp} \end{array} \right]\]

  • Autovalores de \(\boldsymbol{S}\): \(\hat{\lambda}_1, \hat{\lambda}_2, \cdots, \hat{\lambda}_p\)
  • Autovetores de \(\boldsymbol{S}\): \(\hat{\boldsymbol{e}}_1, \hat{\boldsymbol{e}}_2, \cdots, \hat{\boldsymbol{e}}_p\)

Estimação das Componentes Principais

  • Estimação da \(j\)-ésima componente principal de \(\boldsymbol{S}\):

\[\hat{Y}_j = {\hat{\boldsymbol{e}}_j^t}\mathbf{x} = \hat{e}_{j1}X_1 + \hat{e}_{j2}X_2 + \cdots + \hat{e}_{jp}X_p, \,\,\,\,\,\, j = 1, 2, \cdots, p\]

  • Componentes principais amostrais - Propriedades
    • Variância: \(\text{Var}(\hat{Y}_j) = \hat{\lambda}_j\)
    • Covariância entre as componentes: \(\text{Cov}(\hat{Y}_j, \hat{Y}_k) = 0, \,\,\, j \neq k\)
    • Variância total estimada explicada pela componente: \[\dfrac{\text{Var}(\hat{Y}_j)}{\text{Variância total estimada de } \mathbf{x}} = \dfrac{\hat{\lambda}_j}{\text{tr}(\boldsymbol{S})} = \dfrac{\hat{\lambda}_j}{\sum \limits_{i=1}^p \hat{\lambda}_i}\]

Estimação das Componentes Principais

  • Correlação estimada entre componente e variável: \[r_{\hat{Y}_j,\hat{X}_k} = \displaystyle{\frac{\hat{e}_{jk} \sqrt{\hat{\lambda}_j}}{\sqrt{\sigma_{kk}}}}\]
  • Decomposição espectral de \(\boldsymbol{S}\):

\[\boldsymbol{S} = \displaystyle \sum_{j=1}^p \hat{\lambda}_j \hat{\boldsymbol{e}}_j \hat{\boldsymbol{e}}_j^t\]

Estimação das Componentes Principais

  • Aproximação de \(\boldsymbol{S}\) pelas \(r\) primeiras componentes

\[\boldsymbol{S} \approx \displaystyle \sum_{j=1}^r \hat{\lambda}_j \hat{\boldsymbol{e}}_j \hat{\boldsymbol{e}}_j^t\]

  • Escores das componentes
    • Valor das componentes para cada elemento amostral
    • Na prática, o uso das componentes relevantes se dá através dos escores

Exemplo: (Mingoti,2007)

12 empresas, 3 variáveis: ganho bruto (\(X_1\)), ganho líquido (\(X_2\)) e patrimônio acumulado (\(X_3\))

Empresa Ganho bruto \((X_1)\) Ganho líquido \((X_2)\) Patrimônio \((X_3)\)
E1 9893 564 17689
E2 8776 389 17359
E3 13572 1103 18597
E4 6455 743 8745
E5 5129 203 14397
E6 5432 215 3467
E7 3807 385 4679
E8 3423 187 6754
E9 3708 127 2275
E10 3294 297 6754
E11 5433 432 5589
E12 6287 451 8972

Primeiro Exemplo: (Mingoti,2007)

load <- function(pkg){
  new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]
  if (length(new.pkg))
    install.packages(new.pkg, dependencies = TRUE)
  sapply(pkg, require, character.only = TRUE)
} 

## Pacotes utilizados nessa análise

packages = c("tidyverse", "factoextra", "psych", "gridExtra")
load(packages)
 tidyverse factoextra      psych  gridExtra 
      TRUE       TRUE       TRUE       TRUE 
dados <- read.table("https://raw.githubusercontent.com/tiagomartin/est014/refs/heads/master/dados/empresas.txt", row.names = 1, header = TRUE) 
dados %>% 
  str()
'data.frame':   12 obs. of  3 variables:
 $ Granho_Bruto : int  9893 8776 13572 6455 5129 5432 3807 3423 3708 3294 ...
 $ Ganho_Liquido: int  564 389 1103 743 203 215 385 187 127 297 ...
 $ Patrimonio   : int  17689 17359 18597 8745 14397 3467 4679 6754 2275 6754 ...

Primeiro Exemplo: (Mingoti,2007)

x_barra = dados %>% 
  colMeans()

x_barra
 Granho_Bruto Ganho_Liquido    Patrimonio 
    6267.4167      424.6667     9606.4167 
S = dados %>% 
  var()

S
              Granho_Bruto Ganho_Liquido Patrimonio
Granho_Bruto     9550608.6     706121.06 14978232.5
Ganho_Liquido     706121.1      76269.52   933915.1
Patrimonio      14978232.5     933915.06 34408113.0

Primeiro Exemplo: (Mingoti,2007)

dados %>% 
  boxplot() 

Primeiro Exemplo: (Mingoti,2007)

## Analise de Componentes Principais utilizando a matriz de covariancias (Nao aconselhavel, neste caso)
acp_S = prcomp(dados)

## Proporcao da variacao explicada
summary(acp_S)
Importance of components:
                             PC1       PC2       PC3
Standard deviation     6440.0615 1.594e+03 145.23266
Proportion of Variance    0.9418 5.767e-02   0.00048
Cumulative Proportion     0.9418 9.995e-01   1.00000
## Loadings (cargas)
acp_S$rotation
                      PC1         PC2         PC3
Granho_Bruto  -0.42509725 -0.89970680 -0.09909593
Ganho_Liquido -0.02766083 -0.09651661  0.99494694
Patrimonio    -0.90472493  0.42569029  0.01614231
## Opcional: trocar sinal da primeira componente e escores
acp_S$rotation = -acp_S$rotation
acp_S$x = -acp_S$x

## Loadings (cargas)
acp_S$rotation
                     PC1         PC2         PC3
Granho_Bruto  0.42509725  0.89970680  0.09909593
Ganho_Liquido 0.02766083  0.09651661 -0.99494694
Patrimonio    0.90472493 -0.42569029 -0.01614231

Primeiro Exemplo: (Mingoti,2007)

\[Y_1 = 0,425 \times \text{GB} + 0,028 \times \text{GL} + 0,905 \times \text{PA} \Longrightarrow 94,18\% \text{ da informação total de } \mathbf{x}\]

Qual a variável mais importante para \(Y_1\)?

Patrimônio

🤔Será?

Componentes Principais: variáveis padronizadas

  • Padronização do vetor aleatório \(\mathbf{x}\):

\[\boldsymbol{z} = \boldsymbol{D}^{-1}(\mathbf{x} - \boldsymbol{\mu})\]

  • \(\boldsymbol{D}\): matriz diagonal de desvios-padrão
  • Variável padronizada: \(Z_i = \dfrac{X_i - \mu_i}{\sqrt{\sigma_{ii}}}\)
  • Matriz de covariâncias de \(\boldsymbol{z}\)

\[\text{Cov}(\boldsymbol{z}) = \boldsymbol{D}^{-1}\boldsymbol{\Sigma} \boldsymbol{D}^{-1} = \boldsymbol{P} = \text{Cor}(\mathbf{x})\]

  • Componentes principais de \(\boldsymbol{z}\): obtidas dos autovalores e autovetores de \(\boldsymbol{P}\)

Componentes Principais: variáveis padronizadas

  • A \(j\)-ésima componente principal da matriz \(\boldsymbol{P}\):

\[Y_j = \boldsymbol{e}_j^t \boldsymbol{z} = \boldsymbol{e}_j^t \boldsymbol{D}^{-1}(\mathbf{x} - \boldsymbol{\mu}) = {e}_{j1}Z_1 + {e}_{j2}Z_2 + \cdots + {e}_{jp}Z_p\]

sendo \(\boldsymbol{e}_j\), o \(j\)-ésimo autovetor da matriz \(\boldsymbol{P}\), \(j = 1, \cdots p\).

  • Variância total de \(\boldsymbol{P}\)

\[\sum \limits_{j=1}^p \text{Var}(Y_j) = \sum \limits_{j=1}^p \text{Var}(Z_j) = p\]

Componentes Principais: variáveis padronizadas

  • Proporção da variância populacional padronizada devido à \(j\)-ésima componente

\[\dfrac{\text{Var}({Y}_j)}{\text{Variância total de } \boldsymbol{z}} = \dfrac{{\lambda}_j}{\text{tr} (\boldsymbol{P})} = \dfrac{{\lambda}_j}{p}\]

  • Correlação entre componente \(Y_j\) e a variável padronizada \(Z_k\):

\[\rho_{Y_j,Z_k} = e_{jk} \sqrt{\lambda_j}\]

Observações

  • As componentes principais não são invariantes à mudanças de escala. Os resultados são diferentes quando se faz a análise utilizando a matriz de covariâncias e a matriz de correlações.
  • As componentes obtidas a partir da matriz de covariâncias são influenciadas pelas variáveis de maior variância. A matriz de correlações, em geral, é a melhor opção quando as variâncias são muito heterogêneas.
  • Um valor pequeno incomum para o último autovalor da matriz de covariâncias (ou correlação) amostral pode indicar uma dependência linear não detectada no conjunto de dados.
  • Valores grandes de autovalores (e correspondentes autovetores) são importantes em uma análise.

Quantas componentes devem ser retidas?

  • Critério de Kaiser: Trata-se de uma regra prática (heurística) para decidir quantas componentes principais manter em uma PCA extraída através da matriz de correlações. Ele diz:

Retenha apenas as componentes associadas a um autovalor maior que 1.

  • \(\lambda = 1\) → a componente explica tanta variabilidade quanto 1 variável original
  • \(\lambda > 1\) → explica mais variabilidade do que qualquer variável isolada
  • \(\lambda < 1\) → explica menos variabilidade do que uma única variável → então não “vale a pena”

Quantas componentes devem ser retidas?

  • Média dos autovalores: É um critério alternativo quando a PCA é feita sobre matriz de covariâncias.

Se PCA foi feita na matriz de covariâncias, retenha PCs com autovalores maiores que a média dos autovalores.

Então, se uma componente tem autovalor:

\[\lambda_k > \dfrac{\sum \limits_{j=1}^p \lambda_j}{p}\]

ela retém mais informação do que a variância média por dimensão do espaço original.

Quantas componentes devem ser retidas?

  • Screeplot: É um gráfico que coloca, no eixo X, o número da componente principal e, no eixo Y, o autovalor (ou a variância explicada).

O ponto onde a curva deixa de cair abruptamente e começa a “horizontalizar” é onde você para de manter componentes.

  • A ideia é identificar o “cotovelo” da curva.
    • antes do cotovelo: cada componente adiciona bastante variância
    • depois do cotovelo: os autovalores ficam “quase uma linha reta” → só ruído

Quantas componentes devem ser retidas?

Quantas componentes devem ser retidas?

  • Reter o número de componentes principais que acumulem pelo menos certa porcentagem da variabilidade total dos dados, digamos 70%.

Quantas componentes devem ser retidas?

  • Parallel Analysis (Horn, 1965): É o método moderno mais recomendado para decidir quantos componentes reter em PCA.

Compare seus autovalores reais com autovalores esperados ao acaso.

Quantas componentes devem ser retidas?

  • O procedimento envolve:
    • Calcular os autovalores dos dados originais.
    • Gerar dados aleatórios com a mesma estrutura dos dados originais.
    • Calcular autovalores para os dados aleatórios, repetindo o processo muitas vezes para obter uma distribuição amostral.
    • Comparar os autovalores reais com os autovalores médios ou percentis (como o 95º) dos dados simulados.
    • Reter os componentes cujos autovalores reais são maiores do que os autovalores aleatórios correspondentes.

Quantas componentes devem ser retidas?

Parallel analysis suggests that the number of factors =  NA  and the number of components =  1 

Quantas componentes devem ser retidas?

  • Interpretação desse gráfico
    • linha azul = autovalores reais dos seus dados
    • linhas vermelha / pontilhada = autovalores esperados pelo acaso (parallel analysis)
  • Regra: retenha apenas os componentes cuja linha azul está acima da linha vermelha.
    • Parallel Analysis (Horn) está dizendo: retenha 1 componente principal.

Interpretação das componentes principais

  • Em geral, quando existe uma alta correlação positiva entre todas as variáveis, os sinais associados às variáveis coincidem na primeira componente principal.
  • Neste caso, a primeira componente principal pode ser interpretada como um índice global, calculado como uma média ponderada de todas as variáveis.
  • O restante das componentes, normalmente possuem pesos negativos e positivos e são interpretadas como um contraste entre grupos de variáveis.

Voltando ao Exemplo

12 empresas, 3 variáveis: ganho bruto (\(X_1\)), ganho líquido (\(X_2\)) e patrimônio acumulado (\(X_3\))

Empresa Ganho bruto \((X_1)\) Ganho líquido \((X_2)\) Patrimônio \((X_3)\)
E1 9893 564 17689
E2 8776 389 17359
E3 13572 1103 18597
E4 6455 743 8745
E5 5129 203 14397
E6 5432 215 3467
E7 3807 385 4679
E8 3423 187 6754
E9 3708 127 2275
E10 3294 297 6754
E11 5433 432 5589
E12 6287 451 8972

Voltando ao Exemplo

Voltando ao Exemplo

dados %>% 
  scale(center=TRUE, scale=TRUE) 
    Granho_Bruto Ganho_Liquido Patrimonio
E1   1.173173832    0.50452133  1.3779065
E2   0.811732638   -0.12914781  1.3216486
E3   2.363632341    2.45622228  1.5327010
E4   0.060698607    1.15267434 -0.1468530
E5  -0.368371244   -0.80264757  0.8166914
E6  -0.270325871   -0.75919598 -1.0466384
E7  -0.796146767   -0.14363167 -0.8400185
E8  -0.920402290   -0.86058304 -0.4862757
E9  -0.828181394   -1.07784103 -1.2498488
E10 -0.962144379   -0.46227672 -0.4862757
E11 -0.270002289    0.02655375 -0.6848831
E12  0.006336816    0.09535212 -0.1081544
attr(,"scaled:center")
 Granho_Bruto Ganho_Liquido    Patrimonio 
    6267.4167      424.6667     9606.4167 
attr(,"scaled:scale")
 Granho_Bruto Ganho_Liquido    Patrimonio 
    3090.4059      276.1694     5865.8429 

Voltando ao Exemplo

dados %>% 
  scale(center=TRUE, scale=TRUE) %>% 
  boxplot()

Voltando ao Exemplo

## Analise de Componentes Principais utilizando a matriz de correlacoes (Mais aconselhavel, neste caso)
acp_R = prcomp(dados, scale. = TRUE)

## Proporcao da variacao explicada
summary(acp_R)
Importance of components:
                          PC1    PC2     PC3
Standard deviation     1.5788 0.6508 0.28978
Proportion of Variance 0.8308 0.1412 0.02799
Cumulative Proportion  0.8308 0.9720 1.00000
## Loadings (cargas)
acp_R$rotation
                     PC1          PC2        PC3
Granho_Bruto  -0.6167027  0.001267206  0.7871952
Ganho_Liquido -0.5567945  0.706196936 -0.4373395
Patrimonio    -0.5564690 -0.708014324 -0.4348080
## Opcional: trocar sinal da primeira componente e escores
acp_R$rotation = -acp_R$rotation
acp_R$x = -acp_R$x

## Loadings (cargas)
acp_R$rotation
                    PC1          PC2        PC3
Granho_Bruto  0.6167027 -0.001267206 -0.7871952
Ganho_Liquido 0.5567945 -0.706196936  0.4373395
Patrimonio    0.5564690  0.708014324  0.4348080

Voltando ao Exemplo

## Escores das componentes principais
Yr = acp_R$x
Yr %>% head()
          PC1        PC2        PC3
E1  1.7711764  0.6177995 -0.1037449
E2  1.1641454  1.0259213 -0.1208101
E3  3.6781699 -0.6523976 -0.1200063
E4  0.5975165 -0.9180660  0.3924755
E5 -0.2196218  1.1455233  0.2940545
E6 -1.1718486 -0.2045506 -0.5743139
## Matriz de correlacoes entre variaveis originais e componentes principais
Ryx_R = cor(dados,Yr)
Ryx_R
                    PC1           PC2        PC3
Granho_Bruto  0.9736351 -0.0008246563 -0.2281098
Ganho_Liquido 0.8790534 -0.4595699002  0.1267302
Patrimonio    0.8785396  0.4607525968  0.1259966

Voltando ao Exemplo

fa.parallel(dados %>% scale(center=TRUE, scale=TRUE), fa="pc", n.iter=1000)
Parallel analysis suggests that the number of factors =  NA  and the number of components =  1 

Voltando ao Exemplo

\[Z_{GB} = \dfrac{\text{Ganho Bruto} - \overline{\text{Ganho Bruto}}}{s_{\text{Ganho Bruto}}}\]

\[Z_{GL} = \dfrac{\text{Ganho Líquido} - \overline{\text{Ganho Líquido}}}{s_{\text{Ganho Líquido}}}\]

\[Z_{PA} = \dfrac{\text{Patrimônio} - \overline{\text{Patrimônio}}}{s_{\text{Patrimônio}}}\]

Voltando ao Exemplo

\[Y_1 = 0,617 \times Z_{GB} + 0,557 \times Z_{GL} + 0,556 \times Z_{PA} \Longrightarrow 83,08\% \text{ da informação total de } \boldsymbol{z}\]

  • Interpretação: É basicamente um índice de desempenho global da empresa. O coeficiente de maior grandeza numérica desta componente é relativo a ganho bruto enquanto que os demais coeficientes são aproximadamente iguais. Quanto maior os valores de ganhos brutos e líquido e patrimônio da empresa, maior será o valor numérico da componente. Além disso, todas as três variáveis possui alta correlação com essa componente, indicando serem importantes na composição da mesma.

Voltando ao Exemplo

\[Y_2 = -0,001 \times Z_{GB} - 0,706 \times Z_{GL} + 0,708 \times Z_{PA} \Longrightarrow 14,12\% \text{ da informação total de } \boldsymbol{z}\]

  • Interpretação: É uma comparação entre as variáveis ganho líquido e patrimônio, sendo que essas duas variáveis possuem igual importância na composição da mesma. Valores próximos de zero dessa componente indicam empresas com um certo equilíbrio entre ganho líquido e patrimônio acumulado no período.

Voltando ao Exemplo

fviz_pca_biplot(acp_R, repel = TRUE,
                col.var = "#2E9FDF", # Variables color
                col.ind = "#696969"  # Individuals color
                )

Voltando ao Exemplo

Interpretação do biplot

  • As setas indicam em que direção a variável aumenta. os indivíduos que estão posicionados no sentido da seta são os que têm valores maiores naquela variável.
  • Ângulo entre a seta (variável) e o eixo PC1: O cosseno do ângulo entre a variável e a PC é exatamente o loading.

\[\cos(\theta_j, PC_i) = \text{loading}_{X_j, PC_i}\]

Voltando ao Exemplo

então:

  • se a seta está quase colada no eixo \(PC_i\)
    • loading próximo de +1 → variável altamente alinhada com a componente
    • é variável que define o componente principal
  • se a seta faz um ângulo grande (perto de 90°) com \(PC_i\)
    • loading \(\approx 0\) → essa variável não contribui para a componente
  • se a seta aponta para o lado oposto da \(PC_i\) (180°)
    • loading \(\approx -1\) → variável altamente alinhada negativamente

Voltando ao Exemplo

  • Observação: Quando a PCA é feita na matriz de correlações, os loadings são exatamente as correlações entre as variáveis originais e as componentes principais. Quando usamos matriz de covariâncias, os loadings refletem contribuição em variância e o cosseno do ângulo não corresponde numericamente à correlação.

Voltando ao Exemplo

  • PC1 (Dim1 = 83.1%): Praticamente toda a informação relevante está aqui.

PC1 representa um eixo geral de nível financeiro / escala econômica. Quanto maior Patrimônio / Ganho Bruto / Ganho Líquido → mais à direita o indivíduo aparece.

  • Todas variáveis apontam para a direita, e com ângulos semelhantes → altíssima correlação entre elas

Voltando ao Exemplo

  • Quem está mais pra direita (E1, E2, E3) → são aqueles com valores altos nessas variáveis

  • Quem está mais pra esquerda (E8, E9, E10…) → são os com valores baixos

  • A empresa E12 posiciona-se muito próxima à origem do plano principal, indicando um perfil mediano em todas as variáveis financeiras consideradas.

    • Ela não apresenta características extremas nem para valores altos, nem para valores baixos, sendo portanto uma empresa altamente representativa do centro da distribuição.
  • PC2 (Dim2 = 14.1%): quase não traz informação nova → setas não sobem muito, elas estão quase horizontais
    • não existe uma segunda dimensão “conceitual” forte

Voltando a Exemplo

# Contribuições das variáveis para a PC1
fviz_contrib(acp_R, choice = "var", axes = 1)

Voltando ao Exemplo

  • Esse gráfico mostra o quanto cada variável explica/contribui para a formação do primeiro componente principal.
    • Ganho Bruto contribuiu um pouco mais
    • Ganho Liquido e Patrimonio contribuem praticamente igual e muito próximo
  • A linha vermelha tracejada é a contribuição média esperada (se todas contribuíssem igual).
    • Como temos 3 variáveis → contribuição média = \(100\%/3 \approx 33.33\%\)

Voltando ao Exemplo

fviz_contrib(acp_R, choice = "ind", axes = 1:2)

Voltando ao Exemplo

  • Esse gráfico mostra quais indivíduos contribuem mais para definir o plano principal da PC, isto é, quais observações estão orientando a direção das componentes principais.
  • A empresa E3 é a maior influenciadora da PCA: sua contribuição para o plano principal é muito superior à média (linha vermelha), indicando que ela é um caso extremo na direção da primeira componente. Esse ponto está orientando de forma dominante a estrutura da análise.